
/***
 * @Description: 主要负责的是线程之间的资源锁的定义及其相关功能的实现的头文件
 * @Author: Liverpool
 * @Date: 2024-02-21 23:07:43
 * @LastEditTime: 2024-02-21 23:09:18
 * @LastEditors: Liverpool
 */
#ifndef LOCKER_H
#define LOCKER_H

#include "system.h"
#include "netComman.h"

// 枚举锁使用的场景情况
typedef enum _loacker_type_t
{
    Locker_Self,   // 只在单一线程之间使用
    Locker_Thread, // 线程之间的互斥访问
} D_LockerType;

typedef struct _locker_t
{
    D_LockerType type; // 本锁的类型
    union locker
    {
        sys_mutex_t mutex; // 互斥信号量
    };

} D_Locker;

net_err_t locker_init(D_Locker *locker, D_LockerType locker_type); // 初始化锁
void locker_destroy(D_Locker *locker);                             // 对锁进行销毁
void locker_lock(D_Locker *locker);                                // 对锁进行上锁
void locker_Unlock(D_Locker *locker);                              // 对锁进行解锁
#endif                                                             // !LOCKER_H
